package ec.linde.modulos.proyectos.servicio.impl;

import java.util.List;
import java.util.Map;

import javax.ejb.EJB;
import javax.ejb.Stateless;

import ec.linde.modulos.dao.ContactoContratistaDao;
import ec.linde.modulos.dao.ContratistaDao;
import ec.linde.modulos.proyectos.servicio.ServicioContratista;
import ec.linde.persistencia.entidades.proyectos.ContactoContratista;
import ec.linde.persistencia.entidades.proyectos.Contratista;

/**
 * TODO: Agregar descripcion
 * 
 * @FechaCreacion: 29/09/2014
 * @author: Alex Carrillo
 * @FechaModificacion: 29/09/2014
 * @author: Alex Carrillo
 * @version: 1.0
 */
@Stateless
public class ServicioContratistaImpl implements ServicioContratista {

	@EJB
	private ContratistaDao contratistaDao;

	@EJB
	private ContactoContratistaDao contactoDao;

	/*
	 * (non-Javadoc)
	 * 
	 * @see ec.linde.modulos.contratistas.servicio.ServicioProdContratista#guardar(ec.linde .persistencia.entidades.contratistas.ProdContratista)
	 */
	@Override
	public void guardar(Contratista contratista) {
		for (ContactoContratista contacto : contratista.getListaContactoContratista()) {
			contactoDao.guardar(contacto);
		}
		contratistaDao.guardar(contratista);
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see ec.linde.modulos.contratistas.servicio.ServicioProdContratista#eliminar (ec. linde.persistencia.entidades.contratistas.ProdContratista)
	 */
	@Override
	public void eliminar(Contratista contratista) {
		contratistaDao.eliminar(contratista);
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see ec.linde.modulos.contratistas.servicio.ServicioProdContratista#buscarPorId (int)
	 */
	@Override
	public Contratista buscarPorId(int proyId) {
		return contratistaDao.buscarPorId(proyId);
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see ec.linde.modulos.contratistas.servicio.ServicioProdContratista# obtenerListaPorPagina(int, int, java.lang.String, boolean, java.util.Map)
	 */
	@Override
	public List<Contratista> obtenerListaPorPagina(int startIndex, int pageSize, String sortField, boolean sortOrder, Map<String, String> filters) {
		return contratistaDao.obtenerListaPorPagina(startIndex, pageSize, sortField, sortOrder, filters);
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see ec.linde.modulos.contratistas.servicio.ServicioProdContratista# obtenerListaCombo (java.lang.String, boolean, java.util.Map)
	 */
	@Override
	public List<Contratista> obtenerListaCombo(String sortField, boolean sortOrder, Map<String, String> filters) {
		return contratistaDao.obtenerListaCombo(sortField, sortOrder, filters);
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see ec.linde.modulos.contratistas.servicio.ServicioProdContratista# contarPorCriterio (java.util.Map)
	 */
	@Override
	public int contarPorCriterio(Map<String, String> filters) {
		return contratistaDao.contarPorCriterio(filters);
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see ec.linde.modulos.proyectos.servicio.ServicioContratista#cargarDetalle (int)
	 */
	@Override
	public Contratista cargarDetalle(int idContratista) {
		return contratistaDao.cargarDetalle(idContratista);
	}

}
